c++ - 从 C++ 类制作 Visual C++ DLL
全部标签 我想要一个带有窗口创建和管理代码的DLL,开发人员只需添加一个命名的main.hheader并加载DLL即可实例化一个窗口。#include"dllheader.h"voiduser_main();main=user_main;//attachusermaintothedllcallbackintuser_main(){Window*w=newWindow();}在DLL端,代码应该是这样的void(*main)()=NULL;intWinMain(...){if(main)main();//calltheuserdefinedfuncionwhile(!done){if(messag
我有一个c#dll和一个c++dll。我需要将一个字符串变量作为引用从c#传递到c++。我的c++dll将用数据填充变量,我将在C#中使用它,我该怎么做。我尝试使用引用。但是我的c#dll抛出异常。“试图读取或写入protected内存。......这通常表明其他内存已损坏”。关于如何做到这一点的任何想法 最佳答案 作为一般规则,您使用StringBuilder作为引用或返回值,使用string作为您不想/不需要在DLL中更改的字符串。StringBuilder对应LPTSTR,string对应LPCTSTRC#函数导入:[DllI
我希望能够在控制台应用程序和/或独立DLL中处理Win32消息。我已经能够通过以下文章在.NET中做到这一点,它在控制台应用程序和独立DLL中的C#中运行良好http://msdn.microsoft.com/en-us/magazine/cc163417.aspx有没有办法用C/C++Win32API做同样的事情?我试过RegisterClassEx(...)和CreateWindow(...)甚至将HWND_MESSAGE传递给hWndParent但问题是,在创建“不可见”窗口后,可能由于缺少消息泵而无法处理消息.如果您有一个DLL入口点,消息泵会去哪里?我曾尝试在DLL中创建另一
参加美赛不知道论文如何写、如何排版?快来领取免费模板哦~我们的word模板由研赛国赛国一、美赛F/O奖学长联合制作。论文模板是论文的一部分,它代表着你的论文从构思到完成的全过程,是论文的雏形。论文模板能够节省你的写作时间,让你更专注于研究本身。1.有了论文模板,就可以大大提高写作效率,让你不用为了赶时间而匆匆完成一篇论文。2.有了论文模板,就可以避免不够规范,导致格式混乱等问题。3.有了论文模板,就可以更好地应对一些突发状况和临时的需要。4.有了论文模板,你就可以更好地对自己的学术成果进行宣传和展示。数模加油站在此将自己倾心制作的word模板无偿分享给有需要的小伙伴~~希望各位小伙伴都能在比赛
最近小编发现有很多朋友,在启动"原神"游戏,Windows弹出提示"由于找不到UnityPlayer.dll,无法继续执行代码。重新安装程序可能会解决此问题。",又或者是"无法定位程序输入点到动态链接库unityplayer.dll"YuanShen.exe对应的应用是游戏《原神》,由于程序漏洞出错,恶意应用删除等导致丢失了部分文件而打不开进程。那么怎样才能解决这个问题呢?方法一:DLL修复工具Windows提示“UnityPlayer.dll缺失”,最方便的解决办法就是使用DLL修复工具。目前市面上有很多DLL修复工具,或者带有DLL修复功能的软件,大家可以根据需要自行查找使用。因为电脑中安
我正在用VisualC++编写一个程序。该程序依赖于一些我不想放在system32中的dll文件。现在dll文件与我的.exe位于同一文件夹中,但我想将它们移动到子文件夹中。问题是,如果我移动文件,我的应用程序将无法启动并出现以下错误消息:MyProgram.exe-无法找到组件此应用程序无法启动,因为找不到myDll.dll。重新安装应用程序可能会解决问题。我以前遇到过同样的问题,如果找到解决方案,其中包括向注册表添加一些东西,但我忘记了它是如何工作的,现在我又找不到指南了。有人可以帮帮我吗? 最佳答案 解决这个问题的方法不止一种
我正在使用MSVisualC++2010Express构建一个插件,我想包含来自HDF5library的功能.我尝试过使用CMake从源代码构建HDF5,并安装预编译库(HDF5-1.8.7_CMake_x86_shared.zip对于VC2008)。对于任一构建目录/方法,我都修改了我的项目属性:C/C++>General>AdditionalIncludeDirectories:为HDF5添加includeLinker>General>AdditionalLibraryDirectories:为HDF5添加lib这是我的DLL模块的片段:#include"cpp/H5Cpp.h"s
我不知道如何执行以下操作:我正在使用MSVisualC++6.0我有一个可编译的Win32DLL项目。我有另一个项目,这次是一个Win32控制台项目,它使用通过包含它的头文件和链接的.lib文件的DLLDLL。现在我想要另一个项目,类似于第二个但不使用头文件和lib文件。这可能吗?我读到的所有地方都需要dll+lib+h或dll+h。如果您认为如果您知道这些接口(interface),那么一个DLL文件就足够了吗?顺便说一句,“使用DLL”是指使用DLL中定义的类和函数。 最佳答案 如果您只有简单的“externC”函数,这是可能的
我正在解码bencode,并且有一些代码适用于gcc4.4。但是最近升级到gcc4.6后,此代码不再生成:#ifndefBENCODE_VALUETYPES_H#defineBENCODE_VALUETYPES_H#include#include#include#includenamespacebencode{typedefboost::make_recursive_variant,std::map>::typeValue;typedefstd::mapValueDictionary;typedefstd::vectorValueVector;};#endifg++给出了这个错误信息:
我有一组更简单的要求,不需要太多变体的机制。如果可以的话,我也不想依赖boost。我需要存储编译时已知的任意类型(可能是void)。它要么是可移动构造的,要么是可复制构造的,如果其中任何一个抛出异常,则允许包含的值未定义。除了这个值,它还可以包含::std::exception_ptr或::std::error_code.::boost::variant如果T会起作用允许无效。除了::boost::variant提供我在这种情况下实际上不需要的“永不空保证”。而且,如果我理解它是如何正确工作的,它与可以移动但不能复制的类型不太兼容。现在我正在编写大量重复的代码,我不应该编写这些代码来分